package com.panfeng.xcloud.boss.provider.member.service;

import com.panfeng.xcloud.boss.provider.member.dto.request.*;
import com.panfeng.xcloud.boss.provider.member.dto.response.GetExchangeSupportCoinsRespDTO;
import com.panfeng.xcloud.boss.provider.member.web.vo.response.BinancePwdRespVO;
import com.panfeng.xcloud.boss.provider.member.web.vo.response.GetApiInfoRespVO;
import com.panfeng.xcloud.boss.provider.member.web.vo.response.GetSupportCoinsRespVO;

import java.util.List;

public interface IExchangeBindingBinanceService {

    /**
     * 绑定(重绑)BINANCE
     * @param reqBean
     * @return
     */
    boolean binanceBinding(BinanceBindingReqDTO reqBean);

    /**
     * 修改binance绑定
     * @param reqBean
     * @return
     */
    boolean reBinanceBinding(BinanceBindingReqDTO reqBean);


    /**
     * 解绑BINANCE接口
     * @param binanceUnbindReqDTO
     * @return
     */
    boolean binanceUnbind(BinanceUnbindReqDTO binanceUnbindReqDTO);

    /**
     * 根据用户id获取用户binance秘钥
     * 注意切勿对外暴露该接口,调用该接口时验证是否是为该用户本人
     * @param userId
     * @return
     */
    BinancePwdRespVO getUserBinancePwd(String userId);

    /**
     * 修改支持币种
     * @param updateSupportCoinsReqDTO
     * @return
     */
    boolean updateSupportCoins(UpdateSupportCoinsReqDTO updateSupportCoinsReqDTO);

    /**
     * 获取支持币种
     * @param updateSupportCoinsReqDTO
     * @return
     */
    GetSupportCoinsRespVO getSupportCoins(GetSupportCoinsReqDTO updateSupportCoinsReqDTO);

    /**
     * 获取api信息
     * @param getApiInfoReqDTO
     */
    GetApiInfoRespVO getApiInfo(GetApiInfoReqDTO getApiInfoReqDTO);

    /**
     * 获取交易所支持币种
     * @param getApiInfoReqDTO
     * @return
     */
    List<GetExchangeSupportCoinsRespDTO> getExchangeSupportCoins(GetExchangeSupportCoinsReqDTO getApiInfoReqDTO);

}
